home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 2 / Gold Medal Software Volume 2 (Gold Medal) (1994).iso / misc / vgadoc3.arj / TSENG.TXT < prev    next >
Text File  |  1994-01-18  |  16KB  |  400 lines

  1.     Tseng Super VGA
  2.  
  3.     ET3000-AX    512k 8/16 bit Main chip
  4.           -BX    512k  8 bit
  5.           -Bp    256k  8 bit  Basic chip
  6.     ET4000       1M   8/16 bit
  7.     ET4000/W32   4MB  Accelerator.
  8.     ET4000/W32i  4MB  Accelerator. Can interleave DRAM
  9.     ET4000/W32p  4MB  Accelerator, PCI support
  10.  
  11.  
  12.  
  13.     Registers:
  14.  
  15. 102h: Microchannel Setup Control
  16. bit 0  Disable Card if set
  17.  
  18. 3BFh (R/W): Hercules Compatibility Mode
  19. bit   1  Enable second page (B800h-BFFFh)
  20.  
  21. 3C0h index 16h: ATC Miscellaneous
  22. bit 4,5  High resolution timings.
  23.           0: Normal powerup mode, 2: Hiresolution 256color mode
  24.           3: 15/16 bit HiColor mode
  25.       7  Ignore EGA internal palette
  26.  
  27. 3C3h (R/W): Microchannel Video Subsystem Enable Register:
  28. bit 0  Enable Microchannel VGA if set
  29.  
  30. 3C4h index  6  (R/W): Zoom Control                               (ET3000 Only)
  31. bit 0-2  Yzoom factor 0=1:1
  32.     4-6  Xzoom factor 0=1:1
  33.       7  Hardware zoom enabled if set
  34.  
  35. 3C4h index  6  (R/W): TS State Control                            (not ET3000)
  36. bit 1-2  Font Width Select: 0: 9, 1: 8, 2: 10, 3: 11, 4: 12, 7: 16
  37.          Only valid if 3d4h index 34h bit 3 set.
  38.  
  39. 3C4h index  7  (R/W): TS Auxiliary Mode
  40. bit 0  (ET3000 Only) Switch Normal Window if set (Text/Graph)
  41.        (not ET3000)  Selects MCLK/4 as video clock if set (bit 6 must be set)
  42.     1  (ET3000 Only) Switch Zoom Window if set (Text/Graph)
  43.        (not ET3000)  Selects SCLK=MCLK
  44.     2  (ET3000 Only) Switch Split Window if set (Text/Graph)
  45.        (not ET3000)  Always 1
  46.     4  (ET3000 Only) If set 8 simultaneous fonts are enabled,
  47.                      using bit 3,4,6 of each attribute byte
  48.                      to select the font.
  49.   3,5  ROM Bios Enable/Disable:
  50.          0 0  C000-C3FF Enabled
  51.          0 1  ROM disabled
  52.          1 0  C000-C5FF,C680-C7FF Enabled
  53.          1 1  C000-C7FF Enabled
  54.     6  MCLK/2 if set (ET4000: bit 0 must be 0)
  55.     7  VGA compatible if set EGA else.
  56.  
  57. 3CBh (R/W): PEL Address/Data Wd                                  (3000/4000 ?)
  58.  
  59. 3CBh (R/W): Extended bank register                                  (W32 only)
  60. bit 0-1  Write bank bit 4-5. The lower 4 bits are in 3CDh bit 0-3.
  61.     4-5  Read bank bit 4-5.  The lower 4 bits are in 3CDh bit 4-7.
  62.  
  63. 3CDh (R/W): Segment Select
  64. bit 0-2  (ET3000) 64k Write bank nbr
  65.     3-5  (ET3000) 64k Read bank nbr
  66.     6-7  (ET3000) Segment Configuration.
  67.                     0  128K segments
  68.                     1   64K segments
  69.                     2  1M linear memory
  70.     0-3  (ET4000) 64k Write bank nbr (0..15)
  71.     4-7  (ET4000) 64k Read bank nbr (0..15)
  72.  
  73. 3CEh index  Dh (R/W): Microsequencer Mode
  74.  
  75. 3CEh index  Eh (R/W): Microsequencer Reset 
  76.  
  77. 3d4h index 1Bh (R/W): X Zoom Start Address                       (ET3000 Only)
  78. bit 0-7  Offset of Zoom window start in character clocks
  79.          (8 pixels) from left edge
  80.  
  81. 3d4h index 1Ch (R/W): X Zoom End                                 (ET3000 Only)
  82. bit 0-7  Offset of Zoom window end in char clocks from left edge
  83.  
  84. 3d4h index 1Dh (R/W): Y Zoom Start Address                       (ET3000 Only)
  85. bit 0-7  Start line of zoom window bit 0-7
  86.  
  87. 3d4h index 1Eh (R/W): Y Zoom End Address                         (ET3000 Only)
  88. bit 0-7  (ET3000 Only) End line of zoom window bit 0-7
  89.  
  90. 3d4h index 1Fh (R/W): Y Zoom Start and End High                  (ET3000 Only)
  91. bit 0-2  End line of zoom window bit 8-10
  92.     3-5  Start line of zoom window bit 8-10
  93.  
  94. 3d4h index 20h (R/W): Zoom Start Address Low                     (ET3000 Only)
  95. bit 0-7  Zoom Start Address bit 0-7. Address of Zoom data
  96.  
  97. 3d4h index 21h (R/W): Zoom Start Address Middle                  (ET3000 Only)
  98. bit 0-7  Zoom Start Address bit 8-15
  99.  
  100. 3d4h index 23h (R/W): Extended start ET3000                      (ET3000 Only)
  101. bit   0  Cursor start address bit 16
  102.       1  Display start address bit 16
  103.       2  Zoom start address bit 16
  104.  
  105. 3d4h index 24h (R/W): Compatibility Control                      (ET3000 only)
  106. bit   0  Enable Clock Translate
  107.       1  Clock Select bit 2. Bits 0-1 are in 3C2h/3CCh.
  108.       2  Enable tri-state for all output pins
  109.       3  Enable input A8 of 1MB DRAMs
  110.       4  Reserved
  111.       5  Enable external ROM CRTC translation
  112.       6  Enable Double Scan and Underline Attribute
  113.       7  CGA/MDA/Hercules
  114.  
  115. 3d4h index 25h (R/W): Overflow High ET3000                       (ET3000 Only)
  116. bit   0  Vertical Blank Start bit 10
  117.       1  Vertical Total Start bit 10
  118.       2  Vertical Display End bit 10
  119.       3  Vertical Sync Start bit 10
  120.       4  Line Compare bit 10
  121.     5-6  Reserved
  122.       7  Vertical Interlace if set
  123.  
  124. 3d4h index 30h (R/W):
  125. bit 0-4  Exists on W32, but ET4000 ??
  126.  
  127. 3d4h index 32h (R/W): RAS/CAS Video Config                        (not ET3000)
  128. bit 0-4  Controls the Trsp, Tcsw, Tcsp timings
  129.       5  Recharge time (Trcd)? <=50ns if clear
  130.       7  (W32i/p) Set if using interleaved memory.
  131.       Ram timing, System clock and Ram type. Sample values:
  132.           00h  VRAM  80nsec
  133.           09h  VRAM 100nsec
  134.           00h  VRAM  28MHz
  135.           08h  VRAM  36MHz
  136.           70h  DRAM  40MHz
  137.  
  138. 3d4h index 33h (R/W): Extended start ET4000                       (not ET3000)
  139. bit 0-1  (4000) Display Start Address bits 16-17
  140.     2-3  (4000) Cursor start address bits 16-17
  141.          Can be used to ID ET4000
  142.     0-3  (W32x) Display Start Address bits 16-19
  143.  
  144. 3d4h index 34h (R/W): Compatibility Control Register
  145. bit   0  Enable CS0 (alternate clock timing)
  146.       1  Clock Select bit 2.  Bit 0-1 in 3C2h bits 2-3.
  147.       2  Tristate ET4000 bus and color outputs
  148.       3  Video Subsystem Enable Register at 46E8h if set, at 3C3h if clear.
  149.       4  Enable Translation ROM for reading CRTC and MISCOUT
  150.       5  Enable Translation ROM for writing CRTC and MISCOUT
  151.       6  Enable double scan in AT&T compatibility mode
  152.       7  Enable 6845 compatibility
  153.  
  154. 3d4h index 35h (R/W): Overflow High ET4000                        (not ET3000)
  155. bit   0  Vertical Blank Start Bit 10
  156.       1  Vertical Total Bit 10
  157.       2  Vertical Display End Bit 10
  158.       3  Vertical Sync Start Bit 10
  159.       4  Line Compare Bit 10
  160.       5  Gen-Lock Enabled if set (External sync)
  161.       6  Read/Modify/Write Enabled if set. Currently not implemented.
  162.       7  Vertical interlace if set
  163.  
  164. 3d4h index 36h (R/W): Video System Configuration 1                (not ET3000)
  165. bit 0-2  Refresh count (-1)
  166.       3  16 bit wide fonts if set, else 8 bit wide
  167.       4  Linear addressing if set
  168.          Video Memory is mapped as a 1 Meg block above 1MB.
  169.       5  Enable Tseng Addressing Mode
  170.       6  16 bit data path (video memory) if set
  171.       7  16 bit data (I/O operations) if set
  172.  
  173. 3d4h index 37h (R/W): Video System Configuration 2                (not ET3000)
  174. bit 0-1  (4000) Bus width (VGA chip to video memory):
  175.                   1 = 8 bit, 2 = 16 bit, 3 = 32 bit.
  176.       0  (W32x) Bus Width 0: 16bit, 1: 32bit
  177.       2  Bus Read Latch control (0: Delay one clock before latching)
  178.       3  (4000) Size of RAM chips. 0: 64Kx, 1: 256Kx
  179.          (W32x) Size of RAM chips. 0: 1Mx, 1: 256Kx
  180.          RAM size is (Chip size 64k/256k/1M) * (Bus Width 1/2/4 bytes)
  181.          For W32i/p multiply with 2 if interleaved.
  182.       4  Disable Block Readahead (One source says: 16 bit ROM access if set)
  183.       5  Memory bandwidth (0 better than 1) ???
  184.       6  Enable test mode (One source says: Block read ahead (BRA)  if clear)
  185.       7  VRAM installed if set DRAM if clear.
  186.  
  187. 3d4h index 3Fh (R/W):                                             (not ET3000)
  188. bit   7  This bit seems to be bit 8 of the CRTC offset register (3d4h index
  189.          13h).
  190.  
  191. 3d8h (R/W): Display Mode Control
  192.  
  193. 217Ah index E0h W(R/W):  Cursor X-position                          (W32 only)
  194. bit 0-15  The X position of the HardWare Cursor
  195.  
  196. 217Ah index E2h (R/W):                                              (W32 only)
  197. bit  0-7  The pixel number (from the right) within the cursor bitmap of the
  198.           first used pixel.
  199.  
  200. 217Ah index E4h W(R/W):  Cursor Y-position                          (W32 only)
  201. bit 0-15  The Y position of the HardWare cursor
  202.  
  203. 217Ah index E6h (R/W):                                              (W32 only)
  204. bit  0-7  The pixel number (from the top) within the cursor bitmap of the
  205.           first used pixel.
  206.  
  207. 217Ah index E8 3(R/W):  Cursor Map Address                          (W32 only)
  208. bit 0-23  The address in Video Memory of the start of the Cursor BitMap.
  209.           In bytes in planar modes, and in DWORDs in packed modes.
  210.  
  211. 217Ah index EBh (R/W):                                              (W32 only)
  212. bit  0-7  Width of the Cursor Map: 2=16 bytes per line, 4=32 bytes
  213.  
  214. 217Ah index ECh (R/?):                                              (W32 only)
  215. bit  0-3  Mask revision ??
  216.      4-7  Chip version. 0: W32, 3: W32i, 2,4: W32p ?
  217.  
  218. 217Ah index EDh (R/W):                                              (W32 only)
  219.  
  220. 217Ah index EEh (R/W):                                              (W32 only)
  221. bit  0-7  1: Cursor data is loaded from every byte in the Cursor Map.
  222.           2: Cursor data is only loaded from even bytes in the Cursor Map
  223.  
  224. 217Ah index EFh (R/W):                                              (W32 only)
  225.  
  226. 217Ah index F7h (R/W):                                              (W32 only)
  227. bit    7  Set to enable the HardWare Cursor.
  228.  
  229. 46E8h (R):  Video Subsystem Enable Register
  230. bit   3  Enable VGA if set
  231.  
  232.  
  233.        3C4h index 05 used.
  234.  
  235.  
  236.   Bank Switching:
  237.  
  238.      64k banks are selected by the Segment Select Register at 3CDh.
  239.      Both a Read and a Write segment can be selected.
  240.  
  241.   Hardware Zoom (ET3000 Only).
  242.  
  243.      The ET3000 can zoom a part of display memory in a window.
  244.      The display memory position and window position are selected
  245.      by 3d4h index 1Bh to 21h.
  246.  
  247.  
  248.   Identify Tseng Chipset:
  249.  
  250.   outp($3BF,3);
  251.   outp($3D8,$A0);   {Enable ET4000 extensions}
  252.   if tstrg($3CD,$3F) then
  253.     if testinx2(base,$33,$F) then
  254.       if tstrg($3CB,$33) then
  255.         case rdinx($217A,$EC) shr 4 of
  256.           0:Tseng ET4000W32
  257.           3:Tseng ET4000W32i
  258.           2:Tseng ET4000W32p    {Not quite sure yet}
  259.         end
  260.       else Tseng 4000
  261.     else Tseng 3000;
  262.  
  263. Memory:     (Tseng BIOS version 3.00 and up)
  264. 0:488h  BYTE  Bit 4  High bit of the 1024x768 mode flag
  265.                       0: 87Hz interlaced, 1: 60Hz, 2: 72Hz, 3: 70Hz
  266.                   5  High bit of 800x600 mode flag
  267.                       0: 60Hz, 1: 56Hz, 2: 72Hz 
  268.                   6  If set 640x480 is 72Hz, else 60Hz 
  269. 0:489h  BYTE  Bit 5  Low bit of the 1024x768 mode flag
  270.                   6  Low bit of the 800x600 flag 
  271.  
  272.  
  273.  
  274.   Video Modes:
  275.      8   T   132   25   2                   (STB only)
  276.      Ah  T   132   44   2
  277.     18h  T   132   44   4  (8x8)   B000
  278.     19h  T   132   25   4  (9x14)  B000
  279.     1Ah  T   132   28   4  (9x13)  B000
  280.     22h  T   132   44  16  (8x8)
  281.     23h  T   132   25  16  (8x14)
  282.     24h  T   132   28  16  (8x13)
  283.     25h  G   640  480  16  planar
  284.     26h  T    80   60  16  (8x8)
  285.     27h  G   720  512  16  PL4        (Tseng recommended, few boards)
  286.     29h  G   800  600  16  PL4
  287.     2Ah  T   100   40  16  PL4
  288.     2Dh  G   640  350 256  P8
  289.     2Eh  G   640  480 256  P8
  290.     2Fh  G   640  400 256  P8         (ET4000 Only)
  291.     2Fh  G   720  512 256  P8         (Tseng recommended, few boards)
  292.     30h  G   800  600 256  P8
  293.     36h  G   960  720  16  PL4        (STB only)
  294.     37h  G  1024  768  16  PL4
  295.     38h  G  1024  768 256  P8         (ET4000 Only)
  296.     3Dh  G  1280 1024  16  PL4        (newer ET4000s)
  297.     3Eh  G  1280  960  16  PL4        (Definicon)
  298.     6Ah  G   800  600  16  PL4        Newer ET4000s 
  299.  
  300.    BIOS extensions  (Tseng 4000 Sierra HiColor DAC):
  301.  
  302. ----------1010E0-----------------------------
  303. INT 10 - VIDEO - SpeedStar 24 - SET TrueColor GRAPHICS MODE
  304.         AX = 10E0h
  305.         BL = 2Eh    
  306. Return: AX = 0010h if successful
  307.              other on error
  308. Enters 24bit 640x480 mode if SS24 DAC present.
  309. Video memory is NOT cleared.
  310. Each line uses 2048 bytes with only 640x3=1920 bytes actually used.
  311. So that a line can never cross a 64K border.
  312. ----------1010F0-----------------------------
  313. INT 10 - VIDEO - Tseng ET-4000 BIOS - SET HiColor GRAPHICS MODE
  314.         AX = 10F0h
  315.         BL = video mode (see also AH=00h)
  316.              32768-color modes:
  317.                    13h = 320x200
  318.                    2Dh = 640x350
  319.                    2Eh = 640x480
  320.                    2Fh = 640x400
  321.                    30h = 800x600
  322.              16M color modes:
  323.                    3Eh = 640x480   (Genoa 7900) 
  324.         BX =     2DFFh = 640x350   (MEGAVGA/2)
  325.                  2EFFh = 640x480   (MEGAVGA/2)
  326.                  2FFFh = 640x400   (MEGAVGA/2)
  327. Return: AX = 0010h if successful
  328.              other on error
  329. ----------1010F1-----------------------------
  330. INT 10 - VIDEO - Tseng ET-4000 BIOS - GET DAC TYPE
  331.         AX = 10F1h
  332. Return: AX = 0010h if successful, errorcode if not
  333.         BL = type of digital/analog converter
  334.              00h normal VGA DAC
  335.              01h Sierra SC11481/6/8 HiColor DAC
  336.  
  337.          (Diamond SpeedStar 24:)
  338.              02h New SS24 DAC  (16M colors) (actually)
  339.  
  340.          (Tseng generic BIOS rev 8.00 or later:)
  341.              02h Sierra Mark2 (15-bit) or Mark3 (15/16-bit) DAC  
  342.              03h ATT20c490/1/2 15/16/24 bit HiColor DAC
  343.              04h AcuMos ADAC1 (15/16/24 bit)
  344.              05h Sierra SC15025/26 (15/16/24 bit DAC)
  345.              06h Cirrus Internal 15/16/24 bit DAC (from CL-GD54xx series).
  346.              07h Diamond SS2410. (15/24 bit).
  347.              08h Music MU9c4910 (15/16/24 bit DAC).
  348.              09h Unknown Type 9 ??
  349. ----------1010F2-----------------------------
  350. INT 10 - VIDEO - Tseng ET-4000 BIOS - GET/SET HiColor MODE
  351.         AX = 10F2h
  352.         BL = 00h  Get current HiColor mode
  353.              01h  Set 15bit HiColor mode
  354.              02h  Set 16bit HiColor mode
  355. Return: AX = 0010h if successful, errorcode if not
  356.         BL = Current HiColor mode:
  357.              00h  Not in HiColor mode or not a HiColor DAC
  358.              01h  15-bit RGB mode
  359.              02h  16-bit RGB mode
  360.              03h  24-bit RGB mode  
  361. Note: Set HiColor mode (BL=1 or 2) only works if already in some HiColor mode.
  362. ----------101D-------------------------------
  363. INT 10 - VIDEO - SpeedSTAR Plus BIOS v4.23+ - SET SYNC PARAMETERS
  364.         AH = 1Dh
  365.         AL = Video Mode
  366.         ES = Caller's segment
  367. Note: The caller's segment contains a table at offset 5Ch or 100h
  368. Offset    Size    Description
  369.  00h    9 BYTEs   ID string 'ey5CENTER'
  370.  09h    5 BYTEs   sync parameters for 640x480 modes 11h,12h,25h,26h,2Eh
  371.  0Eh    5 BYTEs   sync parameters for 800x600 modes 29h,30h,2Ah
  372.  13h    5 BYTEs   sync parameters for 1024x768 modes 37h, 38h
  373. ----------101DAA-----------------------------
  374. INT 10 - VIDEO - Diamond SpeedSTAR - CHECK FOR SPEEDSTAR
  375.         AX = 1DAAh
  376.         BX = FDECh
  377. Return: BX = DECFh if found
  378.         AL = AH = DACtype:
  379.                     00h  Standard VGA DAC
  380.                     01h  Highcolor DAC with command bit 3 not writable
  381.                          (Sierra "Mark 1" - SC11481/6/8)
  382.                     02h  SS2410 DAC
  383.                     05h  Highcolor DAC with command bit 3 writable (Sierra
  384.                          "Mark 2/3" - SC11482/3/4/5/7/9)
  385.         SI:DI -> BIOS version & Copyright string
  386.  
  387.  
  388.  
  389.  
  390. Notes:
  391.   The sequence: 
  392.  
  393.       port[$3BF]:=3;
  394.       port[$3D8]:=$A0;
  395.  
  396. is apparently needed to enable the extensions in the Tseng 3000/4000.
  397. Most BIOSes do this by default, but some such as the Sigma VGA Legend
  398. requires this sequence.
  399. Let me know if you encounter any other examples.
  400.